//创建子类，继承 Thread，重写 run
public class Demo1 {
    static class MyThread extends Thread{
        //重写父类的 run 方法
        /* 重写和重载的区别：
        Override 父类和子类之间，方法名相同，参数列表相同，返回值相同
        Overload 同一个作用域内，方法名相同，参数列表不同，返回值没要求*/

        /* 方法重写中要求：父类方法和子类方法，签名完全一致（包括 方法名，参数列表，声明的抛出异常...）
        因此，异常处理只能try-catch，不能throws */
        @Override
        public void run() {
            while(true){
                System.out.println("Hello Thread");
                try {
                    // sleep 让当前线程进入阻塞状态
                    Thread.sleep(1000); //休息 1000ms = 1s
                } catch (InterruptedException e) {
                    throw new RuntimeException(e);
                }
            }
        }
    }
    public static void main(String[] args) throws InterruptedException {
        // 1. 创建 Thread 的实例
        Thread t = new MyThread();

        // 2. 启动线程
        // 调用start才是真正创建线程
        t.start();
        // 不是t.run(); 其只会打印Hello Thread

        while(true){
            System.out.println("hello main");
            Thread.sleep(1000);
        }

    }
}
